The invention is related to Internet Protocol (IP) telephony systems. More specifically, the invention is related to systems and methods for terminating a communication to a telephony device that is capable of conducting both an IP-based communication over a data network and a cellular-based communication via a mobile telephony service provider.
Before a telephony device can receive an incoming communication from an IP telephony system via a data network, the telephony device must register with the IP telephony system. During the registration process, the telephony device informs the IP telephony system of the IP address at which it can be reached.
Unfortunately, many telephony devices do not maintain a constant connection with an IP telephony system from which they can receive calls. For example, an IP telephony software application that is used by a smartphone to communication with an IP telephony system must typically be actively running on the device in order for the software application to maintain a connection to the IP telephony system. If the software application is not running, no connection will exist between the telephony device and the IP telephony system, and it will be impossible for the IP telephony system to route an incoming communication to the telephony device.
There are ways, however, for an IP telephony system to cause a telephony device to begin running an IP telephony software application. Typically, as soon as the software application is run, it registers with the IP telephony system. One common way is for the IP telephony system to cause a push notification to be sent to the telephony device. When the push notification is received by the telephony device, the mere receipt of the push notification may be enough to cause the IP telephony software application to run. Alternatively, the push notification may cause a query to be displayed to the user. If the user responds in an affirmative fashion, the IP software application will be run. If not, the software application is not run.
When an IP telephony system receives an incoming communication that is directed to a telephony device having an IP telephony software application, the IP telephony system usually first checks to see if the IP telephony software application on the telephony device is registered. If so, the communication can be immediately routed to the IP telephony software application. If not, the IP telephony system causes a push notification to be sent to the telephony device, to thereby cause the IP telephony software application on the telephony to begin running, and to register with the IP telephony system. Once the IP telephony software application has registered with the IP telephony system, the incoming communication can be routed to the IP telephony software application on the telephony device.
Unfortunately, performing all these steps can take a significant amount of time. If the incoming communication is an incoming call from a calling party, the calling party may become tired of waiting for the call to connect and may terminate the call attempt. Alternatively, the calling party may assume that the long delay means that an error has occurred, and the calling party will terminate the call attempt, even though the process described above is still in progress. Basically, any time that there is a significant delay in setting up a communication to the called telephony device, there is a chance that the calling party will prematurely terminate the setup attempt. Thus, there is a need for alternate procedures which can be used by IP telephony systems to quickly setup a communication to a telephony device so that the calling party will not prematurely terminate a communication setup attempt.